package estadistec.grafico;
/**
 * la clase utilidades se encarga de leer los archivos xml y cargarlos para poder estraer de estos
 * las dimenciones y las posiciones (config)
 * además de los colores de la aplicacion(colorset)
 */
import org.w3c.dom.*;
import java.io.*;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

//import com.sun.java.util.jar.pack.Package.File;

/**
 * Clase que contiene las funcione de otros paquetes que son necesarias para
 * trabajar.
 */
abstract class Utilidades {

	static final String ID = "id";

	/**
	 * Esperta la cantidad de tiempo en milisengundos.
	 * @param tiempo
	 */
	public static void esperar(int tiempo) {
		try {
			Thread.sleep(tiempo);
		} catch (Exception e) {
		}
	}

	/**
	 * Definir el ID para un nodo
	 * @param nodo
	 * @param id
	 */
	public static void definirId(Node nodo, String id) {
		if (nodo != null) {
			if (nodo instanceof Element)
				if (((Element) nodo).hasAttribute(id))
					((Element) nodo).setIdAttribute(id, true);
			NodeList lista = nodo.getChildNodes();
			for (int i = 0; i < lista.getLength(); i++) {
				definirId(lista.item(i), id);
			}
		}
	}

	/**
	 * Crear un dom a partir de una archivo.
	 * @param archivo
	 * @return Un documento.
	 * @throws ParserConfigurationException
	 * @throws org.xml.sax.SAXException
	 * @throws IOException
	 */
	public static Document crearDOM(File archivo)
			throws ParserConfigurationException, org.xml.sax.SAXException,
			IOException {
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
		Document document = builder.parse(archivo);
		Utilidades.definirId(document, ID);
		return document;
	}

}
